package com.niit.session14.inner;

public class Test { 
	public static void main(String[] args) { 
		GuangXi guangXi = new GuangXi();
		guangXi.sayHi();
		JiLin jiLin = new JiLin();
		jiLin.sayHi();
//		来了一个北京的朋友,多态
//		如果你想定义一个类实现某个接口，可以使用匿名内部类，相当一一个一次性的类，用完了就丢
//		注意：在java中接口无法实例化，这里实际上是new了一个没有没有名字的类
//		这个没有名字的类实现了Greeting接口，而这个没有名字的类和Greeting是实现关系
//		所以这么写也是java中多态的体现
		Greeting beijing = new Greeting() {
			@Override
			public void sayHi() {
				System.out.println("吃了么？您嘞");
			}
		};
		beijing.sayHi();

//		来了一个美国的朋友
		new Greeting() {
			@Override
			public void sayHi() {
				System.out.println("Yo what's up bro!");
			}
		}.sayHi();
//			有来了一个广东的朋友,拓展：使用Lambda表达式创建匿名内部类对象
		Greeting guangDong = () -> System.out.println("你好，靓仔");
		guangDong.sayHi();
	}

}
